/**
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * $Id: TruequeAndesAdmin.java,v 1.10 
 * Universidad de los Andes (Bogot� - Colombia)
 * Departamento de Ingenier�a de Sistemas y Computaci�n 
 *
 * Ejercicio: TruequeAndes
 * Autor: Juan Diego Toro - 1-Marzo-2010
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
package co.edu.uniandes.truequeAndes.fachada2;

import java.util.ArrayList;

import co.edu.uniandes.truequeAndes.dao.ConsultaDAOAdmin;
import co.edu.uniandes.truequeAndes.vos.CategoriasValue;
import co.edu.uniandes.truequeAndes.vos.ClientesValue;
import co.edu.uniandes.truequeAndes.vos.InformacionTablasValue;
import co.edu.uniandes.truequeAndes.vos.ProductosConOfertasValue;
import co.edu.uniandes.truequeAndes.vos.ProductosValue;
import co.edu.uniandes.truequeAndes.vos.TablasValue;
import co.uniandes.truequeAndes.dao2.ConsultaDAOAdmin2;

/**
 * Clase TruequeAndesAdmin, que representa la fachada de comunicaci�n entre
 * la interfaz y la conexi�n con la base de datos. Atiende
 * las solicitudes del administrador.
 */
public class TruequeAndesAdmin2 {
	
	/**
	 * Conexi�n con la clase que maneja la base de datos
	 */
	private ConsultaDAOAdmin2 dao;
	

    
    // -----------------------------------------------------------------
    // Singleton
    // -----------------------------------------------------------------


    /**
     * Instancia �nica de la clase
     */
    private static TruequeAndesAdmin2 instancia;
    
    /**
     * Devuelve la instancia �nica de la clase
     * @return Instancia �nica de la clase
     */
    public static TruequeAndesAdmin2 darInstancia( )
    {
        if( instancia == null )
        {
            instancia = new TruequeAndesAdmin2( );
        }
        return instancia;
    }
	
	/**
	 * contructor de la clase. Inicializa el atributo dao.
	 */
	public TruequeAndesAdmin2()
	{
		dao = new ConsultaDAOAdmin2();
	}
	
	/**
	 * inicializa el dao, d�ndole la ruta en donde debe encontrar
	 * el archivo properties.
	 * @param ruta ruta donde se encuentra el archivo properties
	 */
	public void inicializarRuta(String ruta)
	{
		dao.inicializar(ruta);
	}
	
	// ----------------------------------------------------------------------------------
    // M�todos asociados a los requerimientos funcionales asociados al Admin Base de Datos
    // ------------------------------------------------------------------------------------
   /**
    * retorna la Informacion de las tablas que se encuentran
    * en la base de datos.
    * Informacion sobre el:
    * Owner
    * Constraint name
    * Constraint type
    * table name
    * r_owner
    * r constraint name
    */
	public ArrayList<InformacionTablasValue> darInformacionTablas()throws Exception
	{
		return dao.darInformacionTablas();
	}

}
